home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 016a / 4dtnt.zip / FROMDEC.BTM < prev    next >
Text File  |  1991-10-29  |  2KB  |  70 lines

  1. if "%1" == "" .or. "%2" == "" .or. "%[%2]" == "" goto help
  2. set $foo=%@upper[%1]
  3. set $wstr=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
  4. gosub valdec
  5. if %$val gt 9 (gosub cleanup ^ goto helpval)
  6.  
  7. iff      %$foo = B then ^ set $foo=2
  8.  elseiff %$foo = O then ^ set $foo=8
  9.  elseiff %$foo = H then ^ set $foo=16
  10.  elseiff %$foo = D then ^ set $foo=10
  11. endiff
  12. iff %$foo gt 1 .and. %$foo lt 37 then ^ gosub base
  13.  else goto help
  14. endiff
  15.  
  16. set %2=%$foo ^gosub cleanup^quit 0
  17.  
  18. :cleanup
  19. unset $foo $wstr $val $base >& nul
  20. return
  21.  
  22. :base
  23. set $base=%$foo
  24. gosub cnvtit
  25. return
  26.  
  27. :cnvtit
  28. set $div=%$foo
  29. set $num=%@upper[%[%2]]
  30. set $temp=0
  31. set $foo=
  32. :cnvtloop
  33. set $temp=%@eval[%$num %% %$base]
  34. set $foo=%@substr[%$wstr,%$temp,1]%$foo
  35. set $num=%@eval[%$num - %$temp]
  36. set $num=%@eval[%$num / %$base]
  37. if %$num gt 0 goto cnvtloop
  38. :cnvtexit
  39. unset $div $num $temp >& nul
  40. return
  41.  
  42. :helpval
  43. echo Invalid character detected.
  44. echo .
  45. goto help
  46.  
  47. :help
  48. echo Usage: %@name[%0]  mode  var
  49. echo.
  50. echo   var =  Any environment variable whose value is the input
  51. echo   mode = any of:
  52. echo       B=binary    [0-1]
  53. echo       D=decimal   [0-9]
  54. echo       H=hex       [0-F]
  55. echo       O=octal     [0-7]
  56. echo       [2-36]      [0-(n-1)]
  57. echo New value returned in var, replacing original value
  58. quit 4
  59.  
  60. :valdec
  61. set $i=0
  62. :valdoop
  63. set $val=%@index[%$wstr,%@substr[%[%2],%$i,1]]
  64. if %$val lt 0 .or. %$val gt 9 (set $val=99 ^ goto valdexit)
  65. set $i=%@eval[%$i+1]
  66. if %$i lt %@len[%$foo] goto valdoop
  67. :valdexit
  68. unset $i >& NUL
  69. return
  70.